<template>
  <div id="app" class="app-container">
    <!-- 顶部 header 区域 -->
    <mt-header fixed title="固定在顶部">
      <span to="/" slot="left" @click="goBack" v-show="flag">
        <mt-button icon="back">返回</mt-button>
      </span>
    </mt-header>
  
    <!-- 中间的路由 router-view 区域 -->
    <!-- 4.1：transition 路由动画 -->
    <transition>
       <router-view></router-view>
    </transition>
    

    <!-- 底部的tabbar区域 -->
    <nav class="mui-bar mui-bar-tab">
      <router-link class="mui-tab-item" to="/home">
        <span class="mui-icon mui-icon-home"></span>
        <span class="mui-tab-label">首页</span>
      </router-link> 
      <router-link class="mui-tab-item" to="/member">
        <span class="mui-icon mui-icon-contact"></span>
        <span class="mui-tab-label">会员</span>
      </router-link>
      <router-link class="mui-tab-item" to="/shopcar">
        <span class="mui-icon mui-icon-extra mui-icon-extra-cart">
          <span class="mui-badge" id="badge">{{this.$store.getters.getAllCount}}</span>
        </span>
        <span class="mui-tab-label">购物车</span>
      </router-link>
      <router-link class="mui-tab-item" to="/search">
        <span class="mui-icon mui-icon-search"></span>
        <span class="mui-tab-label">搜素</span>
      </router-link>
		</nav>
  </div>
</template> 

<script>
export default {
  data() {
    return {
      flag: false,
    }
  },

  created(){
    this.flag = this.$route.path === "/home" ? false : true;
  },

  methods:{
    goBack(){
      // 后退
      this.$router.go(-1);
    }
  },

  watch: {
    "$route.path": function(newVal){
      if(newVal === "/home"){
        this.flag = false;
      }else{
        this.flag = true;
      }
    }
  }
}
</script>

<style lang="scss" scoped>
.app-container{
  padding-top: 40px;
  padding-bottom: 52px;
  /*  https://blog.csdn.net/qq_41638795/article/details/83304388

  关于overflow:hidden的作用（溢出隐藏、清除浮动、解决外边距塌陷等等）
  一. overflow:hidden  溢出隐藏
    给一个元素中设置overflow:hidden，那么该元素的内容若超出了给定的宽度和高度属性，那么超出的部分将会被隐藏，不占位。

  二. overflow:hidden  清除浮动
  一般而言，父级元素不设置高度时，高度由随内容增加自适应高度。当父级元素内部的子元素全部都设置浮动float之后，子元素会脱离标准流，不占位，父级元素检测不到子元素的高度，父级元素高度为0。由于父级元素没有高度，下面的元素会顶上去，造成页面的塌陷。因此，需要给父级加个overflow:hidden属性，这样父级的高度就随子级容器及子级内容的高度而自适应。

  三. overflow:hidden  解决外边距塌陷
父级元素内部有子元素，如果给子元素添加margin-top样式，那么父级元素也会跟着下来，造成外边距塌陷，因此，给父级元素添加overflow:hidden，就可以解决这个问题了。
  */ 
  overflow-x: hidden;
}

.v-enter {
  opacity: 0;
  transform: translateX(100%);
}

.v-leave-to {
  opacity: 0;
  transform: translateX(-100%);
  position: absolute;
}

.v-enter-active,
.v-leave-active {
  transition: all 0.5s ease;
}
</style>
